sequenceDiagram

  participant 8 as Single-Page Application<br />[Container: JavaScript and Angular]
  participant 12 as Sign In Controller<br />[Component: Spring MVC Rest Controller]
  participant 15 as Security Component<br />[Component: Spring Bean]
  participant 18 as Database<br />[Container: Oracle Database Schema]

  8->>12: Submits credentials to<br />[JSON/HTTPS]
  12->>15: Validates credentials using
  15->>18: select * from users where username = ?<br />[SQL/TCP]
  18-->>15: Returns user data to<br />[SQL/TCP]
  15-->>12: Returns true if the hashed password matches
  12-->>8: Sends back an authentication token to<br />[JSON/HTTPS]